package com.cv.platform.service.collection;

import com.cv.platform.controller.platform.collection.vo.ref.CvVideoCollectionRefRespVO;
import com.cv.platform.controller.platform.collection.vo.ref.CvVideoCollectionRefSaveReqVO;

import java.util.List;

/**
 * 视频合集关联业务层接口
 *
 * @author Charles_XDXD
 */
public interface CvVideoCollectionRefService {

    /**
     * 保存视频合集关联
     *
     * @param reqVO 视频合集关联保存请求对象
     */
    void saveCvVideoCollectionRef(CvVideoCollectionRefSaveReqVO reqVO);

    /**
     * 删除视频合集关联
     *
     * @param collectionId 视频合集编号
     */
    void deleteCvVideoCollectionRef(Long collectionId);

    /**
     * 删除视频合集关联
     *
     * @param collectionId 视频合集编号
     * @param videoId      视频编号
     */
    void deleteCvVideoCollectionRef(Long collectionId, Long videoId);

    /**
     * 根据视频合集编号获取视频编号列表
     *
     * @param collectionId 视频合集编号
     * @return 视频编号列表
     */
    List<Long> getVideoIdListByCollectionId(Long collectionId);

    /**
     * 根据视频编号获取视频关联集合
     *
     * @param videoId 视频编号
     * @return 视频关联集合列表
     */
    List<CvVideoCollectionRefRespVO> getCvVideoCollectionRefByVideoId(Long videoId);

    /**
     * 根据合集编号获取第一个视频的封面 URL
     *
     * @param collectionId 合集编号
     * @return 封面 URL
     */
    String getFirstVideoThumbnailUrlByCollectionId(Long collectionId);

}
